use clap::Parser;
use cli::Args;
use gen_authorize::config::Config;

mod cli;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    env_logger::builder()
        .filter_level(log::LevelFilter::Info)
        .init();

    // 解析命令行参数
    let args = Args::parse();

    // 加载配置文件
    let config = Config::from_file(&args.config)?;

    // 验证配置
    config.validate()?;

    gen_authorize::run(&config.url, &config.prefix).await
}
